mysql登录

        mysql服务启动时,不仅会监听 IP:Port,还会监听一个socket。我们安装的mysql是监听在/tmp/mysql.sock。如果php是在本地,那么php和mysql通信可以通过socket通信,如果是远程,就需要通过tcp/ip来通信了。在Linux命令行下,可以通过如下方法来连接mysql服务器。

tcp/ip的方式

1
[root@lamp ~]# /usr/local/mysql/bin/mysql -uroot -h 127.0.0.1

        这样就连接上了,如果默认mysql的root用户密码为空,就不用加-p选项,不过最好还是设置一个密码。

1
[root@lamp ~]# /usr/local/mysql/bin/mysqladmin -uroot password 'yanyi'

`        只是第一次设置密码的时候可以这样,再次设置时,就需要先输入之前的root密码了。

1
[root@lamp ~]# /usr/local/mysql/bin/mysqladmin -uroot -pyanyi password '123456'

        还有个问题,每次敲命令都是用的绝对路径,这样很繁琐,两个办法可以解决。第一个办法是设置alias,第二个办法是设置PATH

1
2
[root@lamp ~]# alias mysql=/usr/local/mysql/bin/mysql
[root@lamp ~]# alias mysqladmin=/usr/local/mysql/bin/mysqladmin

        如果要永久生效,需要把两个alias放到 .bashrc 里面。

1
[root@lamp ~]# vim .bashrc

        另外就是设置PATH

1
[root@lamp ~]# vim /etc/profile.d/path.sh

        加入

1
export PATH=$PATH:/usr/local/mysql/bin

        保存后执行

1
[root@lamp ~]# source /etc/profile.d/path.sh

        当给mysql设置密码后再去连接,就需要加上-p选项了

1
[root@lamp ~]# mysql -uroot -pyanyi -h127.0.0.1

        其中-h指定ip,如果是远程机器,则-h后面跟远程服务器ip,默认port是3306,如果是其他端口,需要用-P来定义

1
[root@lamp ~]# mysql -uroot -pyanyi -h127.0.0.1 -P3306

        另外有时候还需要mysql授权客户机,要不无法登录

1
2
3
[root@lamp ~]# mysql -uroot -pyanyi
mysql> grant all on *.* to 'root'@'192.168.0.99' identified by '112233'

        all就是所有权限。.前边的*表示所有的库,后边的*表示所有的表,这里就是所有的库和所有的表。’root’@’192.168.99’ root表示授权给root,192.168.0.99是客户端ip,授权哪个客户端IP。identifined by 后边跟的密码

        查看

1
2
mysql> use mysql
mysql> selct * from user where host='192.168.0.99'\G;

        再次连接

1
[root@lamp ~]# mysql -uroot -h192.168.0.99 -p112233

        这里-p选项跟的密码是授权设置的密码,不是root的密码。

        登录以后查看一下当前登录用户

1
mysql> select user();

        用户是 root@192.168.0.99

socket方式

        这种只适合连接本机的mysql:

1
[root@lamp ~]# mysql -uroot -S /tmp/mysql.sock -pyanyi

        这里的-S可以省略掉。